// 引入request
import request from '@/utils/request';
// 引入品牌对象及相关的接口类型
import type {TrademarkModel,TrademarkListModel,TrademarkPageListModel} from '@/api/product/model/trademarkModel';
// 定义枚举数据(储存的是接口地址)
enum Api {
  //  根据关键字搜索品牌列表数据的地址
  GetTrademarkListByKeyword = '/admin/product/baseTrademark/findBaseTrademarkByKeyword',
  //  根据id获取品牌对象数据的地址
  GetrademarkById = '/admin/product/baseTrademark/get',
  //  直接获取所有的品牌列表数据的地址
  GetTrademarkListAll = '/admin/product/baseTrademark/getTrademarkList',
  //  根据品牌的id数组获取品牌列表数据的地址
  GetrademarkListByIds = '/admin/product/baseTrademark/inner/findBaseTrademarkByTrademarkIdList',
  //  根据id删除品牌对象数据的地址
  DeleteTrademarkById = '/admin/product/baseTrademark/remove',
  //  添加品牌对象的地址
  AddTrademark = '/admin/product/baseTrademark/save',
  //  修改品牌对象的地址
  UpdateTrademark = '/admin/product/baseTrademark/update',
  //  根据页码和条数获取品牌列表数据的地址
  GetTrademarkList = '/admin/product/baseTrademark'
}

// 定义接口函数
// 根据关键字获取品牌列表数据
export const getTrademarkListByKeywordApi = (keyword:string) => request.get<any,TrademarkListModel>(`${Api.GetTrademarkListByKeyword}/${keyword}`)
// 根据id获取到品牌独享数据
export const getrademarkByIdApi = (id:number) => request.get<any,TrademarkListModel>(`${Api.GetrademarkById}/${id}`)
// 直接获取所有的的品牌列表的数据
export const getTrademarkListAllApi = () => request.get<any,TrademarkListModel>(`${Api.GetTrademarkListAll}`)
// 品牌的id数组获取品牌列表
export const getrademarkListByIdsApi = (ids:[]) => request.post<any,TrademarkListModel>(`${Api.GetrademarkListByIds}`,ids)
// 删除品牌对象的数据
export const deleteTrademarkByIdApi = (id:number) => request.delete<any,null>(`${Api.DeleteTrademarkById}/${id}`)
// 添加品牌对象
export const addTrademarkApi = (tm:TrademarkModel) => request.post<any,null>(`${Api.AddTrademark}`,tm)
// 修改品牌对象
export const updateTrademarkApi = (tm:TrademarkModel) => request.put<any,null>(`${Api.UpdateTrademark}`,tm)
// 获取品牌列表数据的地址
export const getTrademarkListApi = (page:number,limit:number) => request.get<any,TrademarkPageListModel>(`${Api.GetTrademarkList}/${page}/${limit}`)
// 添加或者修改品牌的数据
export const addOrUpdateTrademark = (tm: TrademarkModel) => {
  if (tm.id) {
    return request.put<any, null>(`${Api.UpdateTrademark}`, tm)
  } else {
    return request.post<any, null>(`${Api.AddTrademark}`, tm)
  }
}

